﻿/*
 Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
        (function() {
            function d(c, d) {
                var b;
                try {
                    b = c.getSelection().getRanges()[0]
                } catch (f) {
                    return null
                }
                b.shrink(CKEDITOR.SHRINK_TEXT);
                return c.elementPath(b.getCommonAncestor()).contains(d, 1)
            }
            function e(c, e) {
                var b = c.lang.liststyle;
                if ("bulletedListStyle" == e)
                    return{title: b.bulletedTitle, minWidth: 300, minHeight: 50, contents: [{id: "info", accessKey: "I", elements: [{type: "select", label: b.type, id: "type", align: "center", style: "width:150px", items: [[b.notset, ""], [b.circle, "circle"], [b.disc, "disc"], [b.square, "square"]], setup: function(a) {
                                            this.setValue(a.getStyle("list-style-type") ||
                                                    h[a.getAttribute("type")] || a.getAttribute("type") || "")
                                        }, commit: function(a) {
                                            var b = this.getValue();
                                            b ? a.setStyle("list-style-type", b) : a.removeStyle("list-style-type")
                                        }}]}], onShow: function() {
                            var a = this.getParentEditor();
                            (a = d(a, "ul")) && this.setupContent(a)
                        }, onOk: function() {
                            var a = this.getParentEditor();
                            (a = d(a, "ul")) && this.commitContent(a)
                        }};
                if ("numberedListStyle" == e) {
                    var g = [[b.notset, ""], [b.lowerRoman, "lower-roman"], [b.upperRoman, "upper-roman"], [b.lowerAlpha, "lower-alpha"], [b.upperAlpha, "upper-alpha"],
                        [b.decimal, "decimal"]];
                    (!CKEDITOR.env.ie || 7 < CKEDITOR.env.version) && g.concat([[b.armenian, "armenian"], [b.decimalLeadingZero, "decimal-leading-zero"], [b.georgian, "georgian"], [b.lowerGreek, "lower-greek"]]);
                    return{title: b.numberedTitle, minWidth: 300, minHeight: 50, contents: [{id: "info", accessKey: "I", elements: [{type: "hbox", widths: ["25%", "75%"], children: [{label: b.start, type: "text", id: "start", validate: CKEDITOR.dialog.validate.integer(b.validateStartNumber), setup: function(a) {
                                                    this.setValue(a.getFirst(f).getAttribute("value") ||
                                                            a.getAttribute("start") || 1)
                                                }, commit: function(a) {
                                                    var b = a.getFirst(f), c = b.getAttribute("value") || a.getAttribute("start") || 1;
                                                    a.getFirst(f).removeAttribute("value");
                                                    var d = parseInt(this.getValue(), 10);
                                                    isNaN(d) ? a.removeAttribute("start") : a.setAttribute("start", d);
                                                    a = b;
                                                    b = c;
                                                    for (d = isNaN(d)?1:d; (a = a.getNext(f)) && b++; )
                                                        a.getAttribute("value") == b && a.setAttribute("value", d + b - c)
                                                }}, {type: "select", label: b.type, id: "type", style: "width: 100%;", items: g, setup: function(a) {
                                                    this.setValue(a.getStyle("list-style-type") || h[a.getAttribute("type")] ||
                                                            a.getAttribute("type") || "")
                                                }, commit: function(a) {
                                                    var b = this.getValue();
                                                    b ? a.setStyle("list-style-type", b) : a.removeStyle("list-style-type")
                                                }}]}]}], onShow: function() {
                            var a = this.getParentEditor();
                            (a = d(a, "ol")) && this.setupContent(a)
                        }, onOk: function() {
                            var a = this.getParentEditor();
                            (a = d(a, "ol")) && this.commitContent(a)
                        }}
                }
            }
            var f = function(c) {
                return c.type == CKEDITOR.NODE_ELEMENT && c.is("li")
            }, h = {a: "lower-alpha", A: "upper-alpha", i: "lower-roman", I: "upper-roman", 1: "decimal", disc: "disc", circle: "circle", square: "square"};
            CKEDITOR.dialog.add("numberedListStyle", function(c) {
                return e(c, "numberedListStyle")
            });
            CKEDITOR.dialog.add("bulletedListStyle", function(c) {
                return e(c, "bulletedListStyle")
            })
        })();